@use 'sass:color';
@use 'mixin';
// 颜色变量
// 使用这个默认调色板作为项目基础

// 基础颜色
$white: #fff !default; // 白色 (#fff)
$black: #000 !default; // 黑色 (#000)

// 灰度级别颜色
$gray-100: #f8f9fa !default; // 最浅的灰色
$gray-200: #e9ecef !default; // 较浅的灰色
$gray-300: #dee2e6 !default; // 浅灰色
$gray-400: #ced4da !default; // 灰色
$gray-500: #adb5bd !default; // 中灰色
$gray-600: #6c757d !default; // 深灰色
$gray-700: #495057 !default; // 较深的灰色
$gray-800: #343a40 !default; // 最深的灰色
$gray-900: #212529 !default; // 接近黑色的灰色

// 主题颜色
$blue: #007bff !default; // 蓝色
$indigo: #6610f2 !default; // 靛青色
$purple: #6f42c1 !default; // 紫色
$pink: #e83e8c !default; // 粉色
$red: #dc3545 !default; // 红色
$orange: #fd7e14 !default; // 橙色
$yellow: #ffc107 !default; // 黄色
$green: #28a745 !default; // 绿色
$teal: #20c997 !default; // 青色
$cyan: #17a2b8 !default; // 蓝绿色

// 情境颜色 - Sass变量
$defaultColors: (
  primary: $blue,
  secondary: $gray-600,
  success: $green,
  info: $cyan,
  warning: $yellow,
  danger: $red,
  light: $gray-100,
  dark: $gray-800
);

:root {
  @each $name, $color in $defaultColors {
    --#{$name}: #{$color};
  }
}

// 情境颜色 - CSS变量
$primary: var(--primary) !default;
$secondary: var(--secondary) !default;
$success: var(--success) !default;
$info: var(--info) !default;
$warning: var(--warning) !default;
$danger: var(--danger) !default;
$light: var(--light) !default;
$dark: var(--dark) !default;
// 字体系统
$font-family-sans-serif: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue',
  Arial, sans-serif !default;
$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas;
$font-family-base: $font-family-sans-serif !default;

// 字体大小
$font-size-base: 1rem !default; // 基础字体 16px
$font-size-lg: $font-size-base * 1.25 !default; // 大字体 20px
$font-size-sm: $font-size-base * 0.875 !default; // 小字体 14px
$font-size-xl: $font-size-base * 1.5 !default; // 超大字体 24px
$font-size-2xl: $font-size-base * 2 !default; // 超大字体 32px

// 字体粗细
$font-weight-lighter: lighter !default; // 更轻的字体
$font-weight-light: 300 !default; // 轻字体
$font-weight-normal: 400 !default; // 正常字体
$font-weight-bold: 700 !default; // 粗体
$font-weight-bolder: bolder !default; // 更粗的字体

// 行高
$line-height-base: 1.5 !default; // 1.5
$line-height-lg: 2 !default; // 2
$line-height-sm: 1.25 !default; // 1.25

// 标题大小
$h1-font-size: $font-size-base * 2.5 !default; // h1标题大小
$h2-font-size: $font-size-base * 2 !default; // h2标题大小
$h3-font-size: $font-size-base * 1.75 !default; // h3标题大小
$h4-font-size: $font-size-base * 1.5 !default; // h4标题大小
$h5-font-size: $font-size-base * 1.25 !default; // h5标题大小
$h6-font-size: $font-size-base !default; // h6标题大小

// 链接
$link-color: var(--primary) !default; // 链接颜色
$link-decoration: none !default; // 链接装饰
$link-hover-color: mixin.lighten-color($link-color, 0.15) !default; // 链接悬停颜色
$link-hover-decoration: underline !default; // 链接悬停装饰

// 背景颜色
$body-bg: $white !default; // 背景颜色
$body-color: $gray-900 !default; // 文本颜色
$body-text-align: null !default; // 文本对齐方式

// Spacing
$spacer: 1rem !default;

// Paragraphs

$paragraph-margin-bottom: 1rem !default;

// 字体其他部分 heading list hr 等等
$headings-margin-bottom: calc($spacer / 2) !default;
$headings-font-family: null !default;
$headings-font-style: null !default;
$headings-font-weight: 500 !default;
$headings-line-height: 1.2 !default;
$headings-color: null !default;

$display1-size: 6rem !default;
$display2-size: 5.5rem !default;
$display3-size: 4.5rem !default;
$display4-size: 3.5rem !default;

$display1-weight: 300 !default;
$display2-weight: 300 !default;
$display3-weight: 300 !default;
$display4-weight: 300 !default;
$display-line-height: $headings-line-height !default;

$lead-font-size: $font-size-base * 1.25 !default;
$lead-font-weight: 300 !default;

$small-font-size: 0.875em !default;

$sub-sup-font-size: 0.75em !default;

$text-muted: $gray-600 !default;

$initialism-font-size: $small-font-size !default;

$blockquote-small-color: $gray-600 !default;
$blockquote-small-font-size: $small-font-size !default;
$blockquote-font-size: $font-size-base * 1.25 !default;

$hr-color: inherit !default;
$hr-height: 1px !default;
$hr-opacity: 0.25 !default;

$legend-margin-bottom: 0.5rem !default;
$legend-font-size: 1.5rem !default;
$legend-font-weight: null !default;

$mark-padding: 0.2em !default;

$dt-font-weight: $font-weight-bold !default;

$nested-kbd-font-weight: $font-weight-bold !default;

$list-inline-padding: 0.5rem !default;

$mark-bg: #fcf8e3 !default;

$hr-margin-y: $spacer !default;

// Code
$code-font-size: $small-font-size !default;
$code-color: $pink !default;
$pre-color: null !default;

// options 可配置选项
$enable-pointer-cursor-for-buttons: true !default;

// 边框 和 border radius
$border-width: 1px !default;
$border-color: $gray-300 !default;

// 普通边框
$border-radius: 0.25rem !default;
$border-radius-lg: 0.3rem !default;
$border-radius-sm: 0.2rem !default;

// 圆角边框
$border-radius-pill: 50rem !default;
$border-radius-circle: 50% !default;

// 不同类型的 box shadow
$box-shadow-sm: 0 0.125rem 0.25rem rgba($black, 0.075) !default;
$box-shadow: 0 0.5rem 1rem rgba($black, 0.15) !default;
$box-shadow-lg: 0 1rem 3rem rgba($black, 0.175) !default;
$box-shadow-inset: inset 0 1px 2px rgba($black, 0.075) !default;

$active-border-width: 2px !default;

// Button组件变量
$btn-padding-y: 0.375rem !default;
$btn-padding-x: 0.75rem !default;

$btn-padding-y-lg: $btn-padding-y * 1.25 !default;
$btn-padding-x-lg: $btn-padding-x * 1.25 !default;

$btn-padding-y-sm: $btn-padding-y * 0.75 !default;
$btn-padding-x-sm: $btn-padding-x * 0.75 !default;

$btn-font-size-base: $font-size-base !default;
$btn-font-size-lg: $font-size-lg !default;
$btn-font-size-sm: $font-size-sm !default;

$btn-font-weight: $font-weight-normal !default;

$btn-border-width: $border-width !default;

$btn-box-shadow:
  inset 0 1px 0 rgba($white, 0.15),
  0 1px 1px rgba($black, 0.075) !default;
$btn-disabled-opacity: 0.65 !default;
$btn-link-disabled-opacity: 0.65 !default;

$btn-border-radius: $border-radius !default;
$btn-border-radius-lg: $border-radius-lg !default;
$btn-border-radius-sm: $border-radius-sm !default;

$btn-primary: $primary;
$btn-secondary: $secondary;
$btn-success: $success;
$btn-info: $info;
$btn-warning: $warning;
$btn-danger: $danger;

// Menu组件变量
$menu-border-width: $border-width !default;
$menu-border-color: $border-color !default;
$menu-box-shadow:
  inset 0 1px 0 rgba($white, 0.15),
  0 1px 1px rgba($black, 0.075) !default;
$menu-transition:
  color 0.15s ease-in-out,
  background-color 0.15s ease-in-out,
  border-color 0.15s ease-in-out,
  box-shadow 0.15s ease-in-out !default;

$menu-item-padding-y: 0.5rem !default;
$menu-item-padding-x: 1rem !default;
$menu-item-active-color: $primary !default;
$menu-item-active-border-width: $active-border-width !default;
$menu-item-disabled-color: $gray-600 !default;

$submenu-box-shadow:
  0 2px 4px 0 rgba(0, 0, 0, 0.12),
  0 0 6px 0 rgba(0, 0, 0, 0.04);

// Tab组件变量
$nav-link-padding-y: 0.5rem !default;
$nav-link-padding-x: 1rem !default;
$nav-link-disabled-color: $gray-600 !default;

$nav-tabs-border-color: $gray-300 !default;
$nav-tabs-border-width: $border-width !default;
$nav-tabs-border-radius: $border-radius !default;
$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;
$nav-tabs-link-hover-color: $primary !default;
$nav-tabs-link-active-color: $primary !default;
$nav-tabs-link-active-bg: $body-bg !default;
$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;
$nav-tabs-content-margin: 1rem !default;

// Input组件变量
$input-padding-y: $btn-padding-y !default;
$input-padding-x: $btn-padding-x !default;
$input-font-family: $font-family-base !default;
$input-font-size: $font-size-base !default;
$input-font-weight: $font-weight-normal !default;
$input-line-height: $line-height-base !default;

$input-padding-y-sm: $btn-padding-y-sm !default;
$input-padding-x-sm: $btn-padding-x-sm !default;
$input-font-size-sm: $btn-font-size-sm !default;

$input-padding-y-lg: $btn-padding-y-lg !default;
$input-padding-x-lg: $btn-padding-x-lg !default;
$input-font-size-lg: $btn-font-size-lg !default;

$input-bg: $white !default;
$input-disabled-bg: $gray-200 !default;
$input-disabled-border-color: null !default;

$input-color: $gray-700 !default;
$input-border-color: $gray-400 !default;
$input-border-width: $border-width !default;
$input-box-shadow: $box-shadow-inset !default;

$input-border-radius: $border-radius !default;
$input-border-radius-lg: $border-radius-lg !default;
$input-border-radius-sm: $border-radius-sm !default;

$input-focus-bg: $input-bg !default;
$input-focus-border-color: mixin.lighten-color($primary, 0.25) !default;
$input-focus-width: .2rem !default;
$input-focus-color: $input-color !default;
$input-focus-shadow-color: rgba($primary, .25) !default;
$input-focus-shadow-error-color: rgba($danger, .25) !default;
$input-focus-box-shadow: 0 0 0 $input-focus-width $input-focus-shadow-color !default;
$input-focus-box-shadow-error: 0 0 0 $input-focus-width $input-focus-shadow-error-color !default;

$input-placeholder-color: $gray-600 !default;
$input-plaintext-color: $body-color !default;

$input-height-border: $input-border-width * 2 !default;

$input-transition: border-color .3s ease-in-out, box-shadow .3s ease-in-out !default;

$input-group-addon-color: $input-color !default;
$input-group-addon-bg: $gray-200 !default;
$input-group-addon-border-color: $input-border-color !default;

$input-disabled-color: $gray-200 !default;

// 进度条变量
$progress-font-size: $font-size-base * .75 !default;
$progress-bg: $gray-200 !default;
$progress-border-radius: $border-radius !default;
$progress-bar-color: $white !default;
$progress-bar-transition: width .6s ease !default;